home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2005 October
/
PCWOCT05.iso
/
Software
/
FromTheMag
/
Ant Movie Catalog 3.5.0.2
/
amc_install.exe
/
{app}
/
Scripts
/
Kinoafisha (RU).ifs
< prev
next >
Wrap
Text File
|
2005-03-16
|
13KB
|
357 lines
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Karamov Ilshat aka KAA (kaa2@pisem.net)
Title=Kinoafisha (RU)
Description=Import from www.kinoafisha.ru
Site=www.kinoafisha.ru
Language=RU
Version=1.0
Requires=3.5.0
Comments=─ε±≥≤∩ Ω ε∩Φ±αφΦ ∞ ⌠Φδⁿ∞εΓ, ≡ατ∞σ∙σφφ√⌡ φα ±αΘ≥σ www.kinoafisha.ru
License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
GetInfo=1
[Options]
***************************************************)
program Kinoafisha_ru;
const
BaseAddress = 'http://www.kinoafisha.ru/';
var
MovieName: string;
//==============================================================================
procedure AnalyzePage(Address: string);
var
Page: TStringList;
BeginPos, EndPos: Integer;
AddressText, HTMLText : string;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
HTMLText := Page.Text;
PickTreeClear;
PickTreeAdd('─ε±≥≤∩φ√σ ⌠Φδⁿ∞√', '');
if Pos('╨στ≤δⁿ≥α≥√ ∩εΦ±Ωα φα KinoAfisha.ru', HTMLText) <> 0 then
begin
BeginPos := Pos('═αΘΣσφ√ ⌠Φδⁿ∞√:</b></td></tr>', HTMLText)+Length('═αΘΣσφ√ ⌠Φδⁿ∞√:</b></td></tr>');
if BeginPos=0 then
BeginPos := Pos('═αΘΣσφ√ ⌠Φδⁿ∞√:</td></tr>', HTMLText)+Length('═αΘΣσφ√ ⌠Φδⁿ∞√:</td></tr>');
HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos(' </TABLE>', HTMLText);
HTMLText := Copy(HTMLText, 0, EndPos);
Page.Text:=Trim(HTMLText);
AddMoviesTitles(Page);
if PickTreeExec(AddressText) then
begin
Page.Text := GetPage(AddressText);
// URL
if CanSetField(fieldURL) then
SetField(fieldURL, AddressText);
AnalyzeVideoPage(Page);
end;
end
else
begin
if Pos('╚τΓΦφΦ≥σ, φΦ≈σπε φσ φαΘΣσφε', HTMLText) = 0 then
begin
// ═αΦ∞σφεΓαφΦσ
BeginPos := Pos('<title>', HTMLText)+Length('<title>');
EndPos := Pos(' - ╩Φφεα⌠Φ°α ╨≤', HTMLText);
MovieName := Copy(HTMLText, BeginPos, EndPos-BeginPos);
PickTreeAdd(MovieName, Address);
if PickTreeExec(AddressText) then
begin
// URL
if CanSetField(fieldURL) then
SetField(fieldURL, Address);
Page.Text := HTMLText;
AnalyzeVideoPage(Page);
end;
end;
end;
Page.Free;
end;
//==============================================================================
procedure AddMoviesTitles(Page: TStringList);
var
i: integer;
Line: string;
MovieTitle, MovieAddress: string;
StartPos, EndPos: Integer;
begin
for i:=0 to Page.Count-1 do
begin
Line := Page.GetString(i);
if Line='' then
Continue;
StartPos := Pos('<a href="', Line)+Length('<a href="');
Line := Copy(Line, StartPos, Length(Line));
EndPos := Pos('">', Line);
MovieAddress := BaseAddress+Copy(Line, 0, EndPos-1);
StartPos := Pos('">', Line);
EndPos := Pos('</td></tr>', Line);
MovieTitle := Copy(Line, StartPos+Length('">'), EndPos);
HTMLRemoveTags(MovieTitle);
PickTreeAdd(MovieTitle, MovieAddress);
end;
end;
//==============================================================================
procedure AnalyzeVideoPage(Page: TStringList);
var
HTMLText, HTMLText1: string;
BeginPos, EndPos: Integer;
MovieName, MovieNameTrans, MovieNameOrig, MovieDirector,
MovieYear, MovieCategory, MovieRating,
MoviePictureAddress, MovieLength, MovieCountry,
MovieDescription, MovieActors, MovieProducer,
MovieComments: string;
begin
HTMLText:=Page.Text;
if Pos('╩Φφεα⌠Φ°α ╨≤', HTMLText) = 0 then
exit;
// ═αΦ∞σφεΓαφΦσ
BeginPos := Pos('<title>', HTMLText)+Length('<title>');
EndPos := Pos(' - ╩Φφεα⌠Φ°α ╨≤', HTMLText);
MovieName := Copy(HTMLText, BeginPos, EndPos-BeginPos);
EndPos := Pos(' - ', MovieName);
MovieNameTrans := Copy(MovieName, 0, EndPos);
BeginPos := Pos(' - ', MovieName)+Length(' - ');
MovieNameOrig := Copy(MovieName, BeginPos, Length(MovieName));
if CanSetField(fieldTranslatedTitle) then
SetField(fieldTranslatedTitle, MovieNameTrans);
// ╬≡ΦπΦφαδⁿφεσ φαΦ∞σφεΓαφΦσ
if CanSetField(fieldOriginalTitle) then
SetField(fieldOriginalTitle, MovieNameOrig);
// ╨σµΦ±±σ≡√
if CanSetField(fieldDirector) then
begin
if Pos('<b>╨σµΦ±±σ≡</b><br><a', HTMLText) <> 0 then
begin
BeginPos := Pos('<b>╨σµΦ±±σ≡</b><br><a', HTMLText)+Length('<b>╨σµΦ±±σ≡</b><br><a');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
BeginPos := Pos('>', HTMLText1)+Length('>');
EndPos := Pos('</a></td></tr></table><br>', HTMLText1);
MovieDirector := Copy(HTMLText1, BeginPos, EndPos-BeginPos);
HTMLRemoveTags(MovieDirector);
MovieDirector:=Trim(MovieDirector);
SetField(fieldDirector, Trim(MovieDirector));
end
else
begin
if Pos('╨σµΦ±±╕≡:', HTMLText) <> 0 then
begin
BeginPos := Pos('╨σµΦ±±╕≡:', HTMLText)+Length('╨σµΦ±±╕≡:');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('.', HTMLText1);
MovieDirector := Trim(Copy(HTMLText1, 0, EndPos-1));
HTMLRemoveTags(MovieDirector);
SetField(fieldDirector, MovieDirector);
end
if Pos('╨σµΦ±±σ≡:', HTMLText) <> 0 then
begin
BeginPos := Pos('╨σµΦ±±σ≡:', HTMLText)+Length('╨σµΦ±±σ≡:');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('.', HTMLText1);
MovieDirector := Trim(Copy(HTMLText1, 0, EndPos-1));
HTMLRemoveTags(MovieDirector);
SetField(fieldDirector, MovieDirector);
end
end;
end;
// ├εΣ
if CanSetField(fieldYear) then
begin
if Pos('(<span class="year">', HTMLText) <> 0 then
begin
BeginPos := Pos('(<span class="year">', HTMLText)+Length('(<span class="year">');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('</span>)', HTMLText1);
MovieYear := Copy(HTMLText1, 0, EndPos-1);
SetField(fieldYear, MovieYear);
end;
end;
// ╞αφ≡
if CanSetField(fieldCategory) then
begin
if Pos('╞αφ≡:</b> <font color="#0000df">', HTMLText) <> 0 then
begin
BeginPos := Pos('╞αφ≡:</b> <font color="#0000df">', HTMLText)+Length('╞αφ≡:</b> <font color="#0000df">');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('</font>', HTMLText1);
MovieCategory := Copy(HTMLText1, 0, EndPos-1);
SetField(fieldCategory, MovieCategory);
end;
end;
// ╨σΘ≥Φφπ
if CanSetField(fieldRating) then
begin
if Pos('<b>═α° ≡σΘ≥Φφπ:</b>', HTMLText) <> 0 then
begin
BeginPos := Pos('<b>═α° ≡σΘ≥Φφπ:</b>', HTMLText)+Length('<b>═α° ≡σΘ≥Φφπ:</b>');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
BeginPos := Pos('<b>', HTMLText1)+Length('<b>');
EndPos := Pos('</b>', HTMLText1);
MovieRating := Copy(HTMLText1, BeginPos, EndPos-BeginPos);
SetField(fieldRating, MovieRating);
end;
end;
// ╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ
if CanSetField(fieldLength) then
begin
if Pos('<b>╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ:</b>', HTMLText) <> 0 then
begin
BeginPos := Pos('<b>╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ:</b>', HTMLText)+Length('<b>╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ:</b>');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('∞Φφ≤≥<br>', HTMLText1);
MovieLength := Trim(Copy(HTMLText1, 0, EndPos-1));
SetField(fieldLength, MovieLength);
end;
end;
// ╤≥≡αφα
if CanSetField(fieldCountry) then
begin
if Pos('<b>╤≥≡αφα:</b>', HTMLText) <> 0 then
begin
BeginPos := Pos('<b>╤≥≡αφα:</b>', HTMLText)+Length('<b>╤≥≡αφα:</b>');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('<br>', HTMLText1);
MovieCountry := Trim(Copy(HTMLText1, 0, EndPos-1));
SetField(fieldCountry, MovieCountry);
end;
end;
// ╘αß≤δα
if CanSetField(fieldDescription) then
begin
if Pos('<b>╘αß≤δα:</b>', HTMLText) <> 0 then
begin
BeginPos := Pos('<b>╘αß≤δα:</b>', HTMLText)+Length('<b>╘αß≤δα:</b>');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('<br>', HTMLText1);
MovieDescription := Trim(Copy(HTMLText1, 0, EndPos-1));
SetField(fieldDescription, MovieDescription);
end;
end;
// └Ω≥σ≡√
if CanSetField(fieldActors) then
begin
if Pos('┬ ≡εδ ⌡:', HTMLText) <> 0 then
begin
BeginPos := Pos('┬ ≡εδ ⌡:', HTMLText)+Length('┬ ≡εδ ⌡:');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('.', HTMLText1);
MovieActors := Trim(Copy(HTMLText1, 0, EndPos-1));
SetField(fieldActors, MovieActors);
end
else
begin
if Pos('<b>╟ΓστΣ√:</b>', HTMLText) <> 0 then
begin
BeginPos := Pos('<b>╟ΓστΣ√:</b>', HTMLText)+Length('<b>╟ΓστΣ√:</b>');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('<br>', HTMLText1);
MovieActors := Trim(Copy(HTMLText1, 0, EndPos-1));
HTMLRemoveTags(MovieActors);
SetField(fieldActors, MovieActors);
end
end;
end;
// ╧≡εΣ■±σ≡√
if CanSetField(fieldProducer) then
begin
if Pos('╧≡εΣ■±σ≡:', HTMLText) <> 0 then
begin
BeginPos := Pos('╧≡εΣ■±σ≡:', HTMLText)+Length('╧≡εΣ■±σ≡:');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('.', HTMLText1);
MovieProducer := Trim(Copy(HTMLText1, 0, EndPos-1));
SetField(fieldProducer, MovieProducer);
end
else
begin
if Pos('╧≡εΣ■±σ≡√:', HTMLText) <> 0 then
begin
BeginPos := Pos('╧≡εΣ■±σ≡√:', HTMLText)+Length('╧≡εΣ■±σ≡√:');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('.', HTMLText1);
MovieProducer := Trim(Copy(HTMLText1, 0, EndPos-1));
SetField(fieldProducer, MovieProducer);
end
end;
end;
// ╩ε∞σφ≥α≡ΦΘ
if CanSetField(fieldComments) then
begin
if Pos('<b>╨σ÷σφτΦ ', HTMLText) <> 0 then
begin
BeginPos := Pos('<b>╨σ÷σφτΦ ', HTMLText);//+Length('<b>╨σ÷σφτΦ ');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
EndPos := Pos('<table', HTMLText1);
MovieComments := Trim(Copy(HTMLText1, 0, EndPos-1));
HTMLRemoveTags(MovieComments);
SetField(fieldComments, MovieComments);
end;
end;
// ╩α≡≥ΦφΩα
if CanSetPicture then
begin
if Pos('poster.jpg', HTMLText) <> 0 then
begin
BeginPos := Pos('filmname', HTMLText)+Length('filmname');
HTMLText1:=Copy(HTMLText, BeginPos, Length(HTMLText));
BeginPos := Pos('><tr><td><a href="', HTMLText1)+Length('><tr><td><a href="');
EndPos := Pos('"><img', HTMLText1);
MoviePictureAddress := Copy(HTMLText1, BeginPos, EndPos-BeginPos);
GetPicture(MoviePictureAddress);
end;
end;
//DisplayResults;
end;
//==============================================================================
//==============================================================================
//==============================================================================
begin
if CheckVersion(3,5,0) then
begin
MovieName := GetField(fieldTranslatedTitle);
if MovieName = '' then
MovieName := GetField(fieldOriginalTitle);
if Input('Import from Kinoafisha.ru', 'Enter the title of the movie:', MovieName) then
begin
AnalyzePage('http://www.kinoafisha.ru/search.php3?find=all&search='+UrlEncode(MovieName));
end;
end else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.